import book.BookList;
import user.Administrator;
import user.User;
import user.VipPerson;
import user.Visitor;
import java.util.Scanner;

public class Main {
    public static User login(){   //登录系统过程
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你的名字：");
        String name = scanner.nextLine();

        System.out.println("请输入你要登入的帐号：1.管理员登录 -----> 2.游客登录 -----> 3.Vip用户");
        int choice=scanner.nextInt();
        if(choice==1){
            return new Administrator(name); //如果选择了1，就创建一个管理员对象，并返回
        }else if(choice==2){
            return new Visitor(name); //如果选择了2，就创建一个游客对象，并返回
        }else{
            return new VipPerson(name);
        }
        //此时的返回值我们不能确定返回的是管理员对象还是用户对象，所以这里用向上转型返回User类型的对象
    }
    public static void main(String[] args) {
            BookList bookList=new BookList(); //实例化书架
            User user=login(); //进入登录系统
            while(true) {
                int chioce = user.menu(); //接收选择服务的选项
                user.Dooperate(chioce, bookList); //调用 游客/管理员 提供的服务
            }
    }
}
